/*
 * Copyright (c) 2009, Jan Pastor. All Rights Reserved.
 */

package sk.jp.jitag.dao;

/**
 * Manage data source - low level database access component provider.
 */
public interface DataSourceProvider {

    /**
     * Post start-up initialization for manual (on demand) initialization.
     */
    void initLazy();

    /**
     * Performs closing operations if needed.
     */
    void close();

    /**
     * Provide database access component for DAO operation.
     * @return database access component.
     */
    DataSource getDataSource();

    /**
     * Copy (make hot backup) of database file in current state.
     * @param newDbPath absolute path of new db file.
     */
    public void backup(String newDbPath);

}
